草庐IT

Python 对象@property

全部标签

javascript - 引用嵌套 'sibling' - 对象文字中的属性

我想从同一对象字面量中的另一个属性中引用对象字面量中的嵌套属性。考虑以下人为的示例:varobj={product1:{price:80,price_was:100,discount:function(){return100-(100*(price/price_was));//Idon'twanttouse://100-(100*(this.product1.price/this.product1.price_was))//becausethenameoftheparent('product1'inthiscase)isn'tknown//a-priori.}}}上面显然是不正确的,但

javascript - 如何在不污染全局命名空间的情况下公开 javascript 对象进行单元测试

我有一个javascript自动完成插件,它使用以下类(用coffeescript编写):Query、Suggestion、SuggestionCollection和Autocomplete。这些类中的每一个都有一个用Jasmine编写的相关规范。插件在模块中定义,例如:(function(){//plugin...}).call(this);这可以防止类污染全局命名空间,但也可以将它们隐藏在任何测试中(使用jasmine的规范,或使用类似q-unit的单元测试)。在不污染全局命名空间的情况下公开javascript类或对象以进行测试的最佳方法是什么?我会用我想出的解决方案来回答,但我

javascript - Arguments 对象是否泄漏?

假设我有这个草率模式函数,它(出于某种奇怪的原因)将其arguments对象返回给调用者:functionexample(a,b/*...*/){varc=//someprocessingreturnarguments;}存储调用结果(vard=example();)会阻止example的变量环境(包含a,b、c等)免于被垃圾回收?Argumentsobject的内部setter和getter可能仍然引用它,就像从闭包返回的函数一样。演示:functionexample(a,b){varc=Array(1000).fill(0);//somelargeobjectreturn{args

javascript - 展平使用 d3.js 嵌套创建的对象层次结构

我正在尝试以如下方式可视化团队协作数据:图表中的不同颜色表示不同的协作工件类型。来自源的数据如下所示:varjson=[{"teamLabel":"Team1","created_date":"2013-01-09","typeLabel":"Email""count":"5"},{"teamLabel":"Team1","created_date":"2013-01-10","typeLabel":"Email""count":"7"},/*andofcourse,alotmoredataofthiskind*/]请注意,数据是针对单日给出的。所以对于上面的可视化,我需要首先根据一年

javascript - 将 Jquery 选择器作为对象属性访问,出现意外结果

假设我有一个看起来像这样的div:somestuffinhere我有一个定义对象字面量的脚本:vartestObject={testDiv:$("#testDiv"),testDivProperty:this.testDiv};为什么当我访问testObject.testDiv时,我得到了一个jQuery对象的引用,即,[​…​​]但是当我访问testObject.testDivProperty时,我得到了对实际元素的引用,即,​…​​因此无法对testObject.testDivProperty执行jQuery操作? 最佳答案 试

javascript - IIFE 和窗口对象?

IIFE需要访问未覆盖的window对象-可以看作:类似于(jQuery示例):$(function(global){//dosomethingwithglobal})(window);但有时我也会看到这个(underscore.js):(function(){varglobal=this;//dosomethingwithglobal}).call(this);问题1:有什么不同吗?如果是这样,我应该什么时候使用它们?问题2:IIFE中的this是window。为什么需要“发送”window/call(this)?(jQuery没有使用严格模式恕我直言)注意看起来jQuery(从1.

javascript - 无效的调用对象 IE

在FF和Chrome中,我可以使用绑定(bind)将this值设置为位置对象,代码如下locationFacade={reload:location.reload.bind(location)}locationFacade.reload();或者我可以使用申请locationFacade={reload:function(){location.reload.apply(location,arguments);}}locationFacade.reload();但是在IE9中,我在调用locationFacade.reload();时一直收到“无效的调用对象”;我没有测试每个IE,但问题

javascript - promise - TypeError : Cannot read property 'then' of undefined

我想我只需要另一双眼睛看这个,因为我无法得到我在这里缺少的东西。$scope.checkout=function(form){//somecodeherefunctioncheckoutErrorHandler(error){//somecodehere}functiondisplaySuccessMessage(){$scope.success=true;cartService.emptyCart();}checkoutService.makePayment($scope.payment).then(function(i){//somecodeherecheckoutService.

javascript - 使用模块模式和实例化新对象之间的区别

我正在尝试重构一些javascript,但我对模块模式感到困惑。我现在的一种方法是简单地声明一个包含组件所有功能的类varFoo=function(){this.Bar={};...}并创建一个新实例以在组件中使用。但我也读过模块模式,我看不出与我所拥有的相比有什么好处,因为它似乎做的差不多,只是以更复杂的方式。也许我只是没有遇到让它成为更好选择的案例。例如,这样的模式:varmodule=(function(){//privatevariablesandfunctionsvarfoo='bar';//constructorvarmodule=function(){};//protot

javascript - 通过 AJAX 发送对象数组 - ASP.NET MVC

所以在JS中获取我需要的对象,我做了:$('.combine-payment-input').each(function(index,value){if(parseFloat(value.value)>0){if(methodOfPayment==-1){methodOfPayment=value.dataset.method;}else{methodOfPayment=0;}vmopl.push({id:value.dataset.method,name:$('label[for="'+value.id+'"]').html(),inUse:'True',ammount:value.